package com.levy.contronller.javaWeb.ajaxCross;

import com.levy.model.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 跨域测试（对应ajaxCrossTest.html）
 * <p>
 * 这里的配置为 接口服务器上的配置，这里仅作笔记使用  不能实际请求
 */

@Controller
public class AJaxCrossTest {


    /**
     * 第一种情况   ：需要参数为 简单参数  请求方法为 GET  最终通过JsonP就可以解决
     *
     * @param paramA
     * @param callback 这个参数必须要和页面传输的回调方法名相同，页面默认为 callback
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "ajax1", method = RequestMethod.GET)
    @ResponseBody
    public String ajax1(String paramA, String callback)
            throws Exception {
        String result = "{'data':'true'}";
        //加上返回参数
        System.out.println("-----paramA-----" + paramA);
        System.out.println("-----callback-----" + callback);
        result = callback + "(" + result + ")";
        return result;
    }

    /**
     * 第二种情况：需要参数为 对象  请求方法为 POST 服务器必须配置跨域处理
     *
     * @param
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "ajax2", method = RequestMethod.POST)
    @ResponseBody
    public Map<String, Object> ajax2(@RequestBody User user)
            throws Exception {
        System.out.println("-----user-----" + user.toString());
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("data", "hello world bitch!");
        return map;
    }

}
